package logic

import (
	"context"

	"github.com/zeromicro/go-zero/tools/goctl/example/api/internal/domain"
	"github.com/zeromicro/go-zero/tools/goctl/example/api/internal/svc"
)

type Gst interface {
	// 创建/修改小说的基本信息
	Create(ctx context.Context, req *domain.GstReq) (resp *domain.IdResp, err error)
	List(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstListResp, err error)
	Info(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstInfoResp, err error)
	Del(ctx context.Context, req *domain.IdReq) (err error)
	// 创建/修改小说的某一小节的基本信息
	CreateBaseInfo(ctx context.Context, req *domain.GstBaseInfoReq) (resp *domain.IdResp, err error)
	BaseInfos(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstBaseInfosResp, err error)
	DelBaseinfo(ctx context.Context, req *domain.IdReq) (err error)
	// 创建/修改小说的某小结对应的故事路线
	CreateLine(ctx context.Context, req *domain.GstLineReq) (resp *domain.IdResp, err error)
	InfoLine(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstInfoLineResp, err error)
	DelLine(ctx context.Context, req *domain.IdReq) (err error)
	// 创建/修改小说的某小结对应的里面的某一处细节
	CreateLineDetails(ctx context.Context, req *domain.GstLineDetailsReq) (resp *domain.IdResp, err error)
	LineDetailsInfo(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstLineDetailsInfoInfoResp, err error)
	DelLineDetails(ctx context.Context, req *domain.IdReq) (err error)
	// 创建/修改小说的某小结对应的里面的具体章节内容
	CreateContents(ctx context.Context, req *domain.GstContentsRep) (resp *domain.IdResp, err error)
	DelContent(ctx context.Context, req *domain.IdReq) (err error)
	// 创建/修改小说的某小结对应的世界观
	CreateWeltanschauung(ctx context.Context, req *domain.GstWeltanschauungReq) (resp *domain.IdResp, err error)
	// 删除小说的某小结对应的世界观
	DelWeltanschauung(ctx context.Context, req *domain.IdReq) (err error)
	ListWeltanschauung(ctx context.Context, req *domain.GstInfoReq) (resp *domain.ListGstWeltanschauungResp, err error)
	InfoWeltanschauung(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstWeltanschauungResp, err error)
	// 获取小说的提示词
	GetPrompts(ctx context.Context, req *domain.GetPromptsReq) (resp *domain.GetPromptsResp, err error)
	Tags(ctx context.Context) (resp *domain.GstTagsResp, err error)
}

type gst struct {
	svcCtx *svc.ServiceContext
}

func NewGst(svcCtx *svc.ServiceContext) Gst {
	return &gst{
		svcCtx: svcCtx,
	}
}

// 创建/修改小说的基本信息
func (l *gst) Create(ctx context.Context, req *domain.GstReq) (resp *domain.IdResp, err error) {
	return
}

func (l *gst) List(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstListResp, err error) {
	return
}

func (l *gst) Info(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstInfoResp, err error) {
	return
}

func (l *gst) Del(ctx context.Context, req *domain.IdReq) (err error) {
	return
}

// 创建/修改小说的某一小节的基本信息
func (l *gst) CreateBaseInfo(ctx context.Context, req *domain.GstBaseInfoReq) (resp *domain.IdResp, err error) {
	return
}

func (l *gst) BaseInfos(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstBaseInfosResp, err error) {
	return
}

func (l *gst) DelBaseinfo(ctx context.Context, req *domain.IdReq) (err error) {
	return
}

// 创建/修改小说的某小结对应的故事路线
func (l *gst) CreateLine(ctx context.Context, req *domain.GstLineReq) (resp *domain.IdResp, err error) {
	return
}

func (l *gst) InfoLine(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstInfoLineResp, err error) {
	return
}

func (l *gst) DelLine(ctx context.Context, req *domain.IdReq) (err error) {
	return
}

// 创建/修改小说的某小结对应的里面的某一处细节
func (l *gst) CreateLineDetails(ctx context.Context, req *domain.GstLineDetailsReq) (resp *domain.IdResp, err error) {
	return
}

func (l *gst) LineDetailsInfo(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstLineDetailsInfoInfoResp, err error) {
	return
}

func (l *gst) DelLineDetails(ctx context.Context, req *domain.IdReq) (err error) {
	return
}

// 创建/修改小说的某小结对应的里面的具体章节内容
func (l *gst) CreateContents(ctx context.Context, req *domain.GstContentsRep) (resp *domain.IdResp, err error) {
	return
}

func (l *gst) DelContent(ctx context.Context, req *domain.IdReq) (err error) {
	return
}

// 创建/修改小说的某小结对应的世界观
func (l *gst) CreateWeltanschauung(ctx context.Context, req *domain.GstWeltanschauungReq) (resp *domain.IdResp, err error) {
	return
}

// 删除小说的某小结对应的世界观
func (l *gst) DelWeltanschauung(ctx context.Context, req *domain.IdReq) (err error) {
	return
}

func (l *gst) ListWeltanschauung(ctx context.Context, req *domain.GstInfoReq) (resp *domain.ListGstWeltanschauungResp, err error) {
	return
}

func (l *gst) InfoWeltanschauung(ctx context.Context, req *domain.GstInfoReq) (resp *domain.GstWeltanschauungResp, err error) {
	return
}

// 获取小说的提示词
func (l *gst) GetPrompts(ctx context.Context, req *domain.GetPromptsReq) (resp *domain.GetPromptsResp, err error) {
	return
}

func (l *gst) Tags(ctx context.Context) (resp *domain.GstTagsResp, err error) {
	return
}
